자바의 개념 및 특징
JAVA는 c++를 모델로 하여 선마이크로 시스템즈에서 개발된 언어로써 객체지향형 언어이며, 인터프리터 언어로써 JVM 위에서 실행되는 언어이다.
자바 프로그램의 종류
-
J2SE:개인용 컴퓨터용 자바
Java SE는 데스크탑과 서버에서 자바 애플리케이션을 개발하고 실행할 수 있게 해주며 임베디드 환경과 real-Time environments도 지원한다.
-
J2ME: 휴대폰 PDA 스마트카드 등의 임베디드 시스템 자바
Java ME는 핸드폰 프린터, 등 모바일 기기나 임베디드 장치에서 실행되는 애플리케이션을 위한 환경을 제공한다.
-
J2EE:대규모의 서버용 자바
Java EE 는 기업용 애플리케이션을 개발하는데 필요한 여러가지 도구민 라이브러리들을 모아놓은 것이다.
자바 프로그램형태의 종류
- 자바 애플리케이션: c,c++ 처럼 컴퓨터에서 실행할 수 있는 여러 형태의 응용프로그램을 개발 했을 때의 형태이다.
- 자바 애플릿: 서버에서 클라이언트 쪽으로 전송되어 클라이언트에서 실행되며 웹 브라우저에 의해서 실행된다.
- 자바 서블릿: 웹서버에서 동작하는 서버 모듈로서 클라이언트의 요구를 받아서 그에 대한 처리를 한 후에 실행 결과를 HTML 문서로 클라이언트 컴퓨터로 전송(server side rendering)
자바의 역사
1991년에 sun 마이크로 시스템 사에서 제임스 고슬링을 비롯한 연구팀에서 가정용 전자체품에 사용할 수 있는 작은 컴퓨터 언어를 설계하였다. 처음에는 c++를 이용해 운영체제를 만들었으나 c++의 복잡도로 인해 실패하였다. 이때 프로젝트를 위해 만든 언어가 Java이다.
자바의 특성
자바의 핵심 문구중 하나는 Write once, Run Everywhere 이다. 이 문구는 자바의 개발 환경에서 바이트코드 기반으로 중간언어로 컴파일을 한 후 실행환경에서 JVM으로 실행을 하기 때문에 JVM이 설치된 환경이라면 어느 곳에서나 동일한 코드로 실행 할 수 있다는 핵심 개념을 표현 한 것이다.
이외의 특성에는 다음과 같은 것들이 있다.
-
단순하다.
c나 c++에서 프로그래머에게 혼란을 줄 수 있는 많은 요소들을 제거하였다. 또한 포인터, 구조체, 전처리 기능등을 삭제 했으며, 메모리를 자동으로 관리해준다.
-
객체지향형이다.
원시 데이터타입을 제외한 대부분의 요소들을 객체로 표현하고 있다. 따라서 소프트웨어의 재사용과 정보의 캡슐화 같은 많은 장점을 제공한다.
-
높은 성능을 가진다.
자바는 컴파일을 한 후에 그 결과인 바이트 코드를 인터프리터가 기계어로 번혁하는 방식으로 구현된다. 따라서 한번 중간언어로 번역된 바이트코드는 실시간으로 인터프리팅을 하는 것보다 나은 성능을 가진다.
-
견고하다.
다양한 환경에서 동일한 결과를 제공하기 위해서 높은 신뢰성을 요구하는데, 이런 특성을 위해 포인터가 없고, 메모리를 자동으로 관리해주며, 객체타입을 코드 작성시점에 검사한다. 또한 실행시점에 에러를 처리해준다.
-
안전하다.
자바는 분산 환경에서 실행될 수 있도록 개발 환경과 실행환경이 분리되어있으며 실행 전과 컴파일 시에 JVM이 무결성 검사를 한다.
-
구조중립적이다.
바이트코드와 JVM을 사용하기 때문에 소스코드를 한번만 작성하고, 기기에 상관 없이 JVM에서 사용할 수 있다.